package cn.topevery.garden.entity.dto;

import cn.topevery.garden.entity.po.GreFile;
import cn.topevery.garden.entity.serializer.GeometrySerializer;
import com.alibaba.fastjson.annotation.JSONField;
import hw.topevery.framework.dto.PointDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 * 行道树 DTO
 *
 * @author code-generate
 * @date 2022-01-05
 */
@Data
@ApiModel(value = "GreTreeDTO", description = "行道树 DTO")
public class GreTreeDTO implements Serializable{
    /**
     * 自增id
     */
    private Integer id;

        /** UUID */
    @ApiModelProperty(value = "UUID")
    private Character treeId;

    /** 编号 */
    @ApiModelProperty(value = "编号")
    private String code;

    /** 中文名 */
    @ApiModelProperty(value = "中文名")
    private String name;

    /** 拉丁名 */
    @ApiModelProperty(value = "拉丁名")
    private String nameLatin;

    /** 绿地Id */
    @ApiModelProperty(value = "绿地Id")
    private Integer landId;

    /** 树高（M） */
    @ApiModelProperty(value = "树高（M）")
    private Double treeHeight;

    /** 树宽（M） 范围 */
    @ApiModelProperty(value = "树宽（M） 范围")
    private String treeWidth;

    /** 科名 */
    @ApiModelProperty(value = "科名")
    private String treeKind;

    /** 属性 */
    @ApiModelProperty(value = "属性")
    private String treeAttr;

    /** 类别ID */
    @ApiModelProperty(value = "类别ID")
    private String type;

    /** 类别 */
    @ApiModelProperty(value = "类别")
    private String typeName;

    /** 所属地名 */
    @ApiModelProperty(value = "所属地名")
    private String address;

    /** 所属路段 */
    @ApiModelProperty(value = "所属路段")
    private String aloneLoad;

    /** 街道Id */
    @ApiModelProperty(value = "街道Id")
    private String streetId;

    /** 街道名称 */
    @ApiModelProperty(value = "街道名称")
    private String streetName;

    /** 区域ID */
    @ApiModelProperty(value = "区域ID")
    private String distractId;

    /** 区域 */
    @ApiModelProperty(value = "区域")
    private String distractName;

    /** 社区Id */
    @ApiModelProperty(value = "社区Id")
    private String communityId;

    /** 社区名称 */
    @ApiModelProperty(value = "社区名称")
    private String communityName;

    /** 普查图片地址 */
    @ApiModelProperty(value = "普查图片地址")
    private String fileUrl;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String desc;

    /** 普查日期 */
    @ApiModelProperty(value = "普查日期")
    private LocalDate date;

    /** 坐标X */
    @ApiModelProperty(value = "坐标X")
    private Double lng;

    /** 坐标Y */
    @ApiModelProperty(value = "坐标Y")
    private Double lat;

    /** 胸径(m) */
    @ApiModelProperty(value = "胸径(m)")
    private String growth;

    /** 审核状态 */
    @ApiModelProperty(value = "审核状态")
    private Boolean state;

    /** 生长状态 */
    @ApiModelProperty(value = "生长状态")
    private String growthState;

    /** 树木品种 */
    @ApiModelProperty(value = "树木品种")
    private String treeName;

    /** 平均冠幅 */
    @ApiModelProperty(value = "平均冠幅")
    private Double avgCrown;

    /** 树池大小 */
    @ApiModelProperty(value = "树池大小")
    private String spec;

    /** 树龄 */
    @ApiModelProperty(value = "树龄")
    private Double treeOld;

    /** 栽种单位 */
    @ApiModelProperty(value = "栽种单位")
    private String plantUnits;

    /** 管理单位 */
    @ApiModelProperty(value = "管理单位")
    private String manage;

    /** 管理单位Id */
    @ApiModelProperty(value = "管理单位Id")
    private String manageId;

    /** 图层名称 */
    @ApiModelProperty(value = "图层名称")
    private String objName;


    @ApiModelProperty(value = "范围点信息")
    private List<List<PointDto>> mapRangesPoints;

    private List<GreFile> fileList;

    /** 计算空间数据 */
    @ApiModelProperty(value = "计算空间数据")
    private String geoWkt;

    @ApiModelProperty(value = "树木类别 1 行道树，2林地, 3散树, 4散树面")
    private Integer treeTypeId ;

}
